/*************************************************
  * 描述：热键注册的PIMPL实现
  *
  * File：hotkey_p.h
  * Author：chenyujin@mozihealthcare.cn
  * Date：2025/9/12
  * Update：
  * ************************************************/
#ifndef COREXI_COMMON_PC_HOTKEY_P_H
#define COREXI_COMMON_PC_HOTKEY_P_H

#include <common/hotkey/hotkey.h>


class HotKeyPrivate
{
public:
	/**
	 * 为窗体注册快捷键
	 * @param widget
	 * @param hotKeyStr 格式化字符串："Shift+Ctrl+Alt+C"
	 * @return 注册成功后的快捷键ID, -1 表示失败
	 */
	static int registerHotKey(const QWidget* widget, const std::string& hotKey);

	/**
	 * 为窗体注销快捷键
	 * @param widget
	 * @param id
	 * @return true 注销成功
	 */
	static bool unregisterHotKey(QWidget* widget, int id);

private:
#ifdef Q_OS_WIN
	static int registerWin(HWND hwnd, const std::string& hotKeyStr);
	static bool unregisterWin(HWND hwnd, int id);
#else
	static int registerUnix(Window window, const std::string& hotKeyStr);
	static Display* m_display = nullptr;
#endif
};


#endif//COREXI_COMMON_PC_HOTKEY_P_H
